<!--
Copyright 2013 Google Inc. All Rights Reserved.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->

<!DOCTYPE html>
<div id="anim"></div>

<script src="../bootstrap.js" nochecks></script>
<script>
"use strict";

var usePerformanceTiming =
    typeof performance === "object" &&
    typeof performance.timing === "object" &&
    typeof performance.now === "function";

var clockMillis = function() {
  return usePerformanceTiming ? performance.now() : Date.now();
};

function sleep() {
  var startTime = clockMillis();
  while (startTime === clockMillis()) {}
}

// Test that document.timeline.currentTime is read-only.
timing_test(function() {
    at(1.0, function() {assert_not_equals(document.timeline.currentTime,  1)});
  }, "document.timeline.currentTime should be read-only");

// Test that document.timeline.currentTime is constant within a JavaScript
// callstack.
timing_test(function() {
    at(0.0, function() {assert_equals(document.timeline.currentTime, 0.0)});
  }, "document.timeline.currentTime time should be constant in JavaScript callstack");

// Test that document.timeline.currentTime is non-null in an onload handler
// when using performance timing. Note that this assumes that web-animations.js
// is loaded before document load time.
if (usePerformanceTiming) {
  addEventListener("load", function() {
    test(function() {assert_not_equals(document.timeline.currentTime,  null)},
         "document.timeline.currentTime should be non-null in an onload handler");
  });
}

</script>
